#pragma once
//Include do Irrlicht
#include <irrlicht.h>

//Usar os namespaces da engine
using namespace irr;
using namespace video;
using namespace scene;
using namespace core;
using namespace gui;


enum TipoCamera {GODVIEW,TERCEIRA};

class Camera
{
public:
	Camera(void);
	~Camera(void);




	void init(ISceneManager *smgr,ISceneNode *node);
	void atualizaCamera(ISceneNode * node);
	TipoCamera getTipoCamera();
	ICameraSceneNode* getCamera();


	vector3df sphericalXYZ(f32 compassAngle, f32 elevationAngle, f32 radius);
	f32 getCameraOrbit();
	f32 getCameraAngle();
	f32 getCameraDistance();
	f32 getCameraOrbitOld();
	f32 getCameraAngleOld(); 

	f32 getPlayerMoveSpeed();
	f32 getPlayerCompass();
	f32 getPlayerTurnTO();
	f32 getPlayerTurnSpeed();

	void setPlayerMoveSpeed(f32 var);
	void setPlayerCompass(f32 var);
	void setPlayerTurnTO(f32 var);
	void setPlayerTurnSpeed(f32 var);

	void setCameraOrbit(f32 var);
	void setCameraOrbitOld(f32 var);
	void setCameraDistance(f32 var);
	void setCameraAngle(f32 var);
	void setCameraAngleOld(f32 var);

private:
	TipoCamera tipoCamera;
	ICameraSceneNode *camera;


	// camera registry
	f32 cameraOrbit;
	f32 cameraAngle;
	f32 cameraDistance;
	f32 cameraOrbitOld;
	f32 cameraAngleOld; 

	f32 playerCompass;
	f32 playerTurnTo;
	f32 playerTurnSpeed;
	f32 playerMoveSpeed; 



};
